package com.ghp.singleton.hungry;

import java.io.Serializable;

/**
 * @author 知识汲取者
 * @date 2025/7/15
 * @title 原始饿汉
 * @description
 **/
public class HungrySingleton1 implements Serializable {

    private static final long serialVersionUID = 3794024012798745659L;

    // Step2：创建一个私有的静态成员变量，用来保存唯一实例
    private static HungrySingleton1 instance = new HungrySingleton1();

    // Step1：私有化构造器，禁止外部创建实例
    private HungrySingleton1() {
        if (instance != null){
            throw new RuntimeException("单例模式不允许多个实例！");
        }
    }

    // Step3：创建一个公开的静态成员方法，用来获取唯一实例
    public static HungrySingleton1 getInstance() {
        return instance;
    }

    /**
     * 获取反序列化后的对象
     * 反序列化时会检查有没有这个方法，如果有则会调用这个方法返回反序列化生成的对象
     *
     * @return
     */
    private Object readResolve() {
        return getInstance();
    }

}